Automatyzacja Zadań - SDK
CGC SDK umożliwia użytkownikom budowanie potoków oraz włączanie logiki do zarządzania zadaniami.
Do połączenia z platformą wymagany jest ważny kontekst, a uprawnienia telemetryczne muszą być ustawione, aby uniknąć przerwania procesu.
Podstawowe Zastosowanie
Tworzenie i usuwanie zadań można zrealizować w następujący sposób:
Tworzenie zadania
Proste tworzenie zadania:
import cgc.sdk as cgc
# Tworzenie zadania
response_created = cgc.jobs.job_create("nazwa", "nazwa-obraz:tag", cpu = 12, memory = 128,
gpu = 1, gpu_type="A100")
Tworzenie zadania z zamontowanym wolumenem na określonej ścieżce:
import cgc.sdk as cgc
# Tworzenie zadania z zamontowanym woluminem
response_created = cgc.jobs.job_create("nazwa", "nazwa-obraz:tag", cpu = 12, memory = 128,
gpu = 1, gpu_type="A100", volumes=["dane-treningowe"], volume_full_path="/tmp/dane")
Dane zostaną zamontowane w katalogu /tmp/dane
.
Jeśli chcesz użyć wielu wolumenów dla zadania, możesz przekazać listę wolumenów:
Wolumeny zostaną zamontowane w: /usr/'nazwa_wolumenu'
import cgc.sdk as cgc
# Tworzenie zadania z wieloma zamontowanymi wolumenami
response_created = cgc.jobs.job_create("nazwa", "nazwa-obraz:tag", cpu = 12, memory = 128,
gpu = 1, gpu_type="A100", volumes=["wol-1", "wol-2"])
Jeśli nie musisz monitorować statusu zadania, możesz ustawić parametr ttl_seconds_after_finished
, aby automatycznie usunąć zadanie po określonym czasie:
import cgc.sdk as cgc
# Tworzenie zadania z TTL
response_created = cgc.jobs.job_create("nazwa", "nazwa-obraz:tag", cpu = 12, memory = 128,
gpu = 1, gpu_type="A100", ttl_seconds_after_finished=3600)
Argumenty funkcji
Nazwa argumentu | Wartość | Domyślnie | Opis | Wymagane |
---|---|---|---|---|
name | string | Brak | Nazwa zadania | * |
image_name | string | Brak | Nazwa obrazu z repozytorium publicznego lub prywatnego | * |
repository_secret | string | Brak | Nazwa sekretu zapewnionego przez zespół CGC dla repo prywatnych | |
cpu | int | 1 | Liczba vCPU | |
memory | int [GB] | 2 | Ilość pamięci RAM w GB | |
shm_size | int [GB] | 0 | Rozmiar pamięci współdzielonej wyciętej z pamięci RAM | |
gpu | int | 0 | Liczba GPU | |
gpu_type | string [A100 | A5000] | A5000 | Typ GPU | |
volumes | lista | [] | Lista wolumenów do zamontowania | |
volume_full_path | string | Brak | Ścieżka, w której wolumen zostanie zamontowany | |
startup_command | string | Brak | Jeśli nie określono w obrazie Docker | |
resource_data | lista | [] | Lista parametrów w formacie klucz=wartość | |
ttl_seconds_after_finished | int | Brak | Czas życia w sekundach po zakończeniu zadania | |
active_deadline_seconds | int | Brak | Czas życia w sekundach po uruchomieniu zadania |
active_deadline_seconds
może być ustawiony ręcznie przez użytkownika lub administratora.
Usuwanie zadania
import cgc.sdk as cgc
# Usuwanie aplikacji
response_deleted = cgc.jobs.job_delete("nazwa")
Argumenty funkcji
Nazwa argumentu | Wartość | Domyślnie | Opis | Wymagane |
---|---|---|---|---|
name | string | Brak | Nazwa zadania | * |
Lista uruchomionych i oczekujących zadań
import cgc.sdk as cgc
# Pobieranie statusu aplikacji
response_list = cgc.jobs.job_list()